#ifndef LINKLIST_H
#define LINKLIST_H
#include <string>
using namespace std;

//Define the LinkList to be in the course namespace
//Documentation is left out of this file on purpose
namespace CSCI123 {

	/*
	 * LinkListNode - not accessible to the public 
	 */
	struct Node {
		string data;
		Node *next;
	};
	typedef Node* NodePtr;

	/**
 	 * LinkList
	 * Node definition of LinkList
	 * @author: Brad Rippe (brippe@fullcoll.edu) 
	 */
	class LinkList {
	public:
		LinkList();
		~LinkList();
		void insert(const string& aData);		
		bool insert(const string& aData1, const string& aData2);		
		void search(NodePtr& cur, const string& target) const;
		void deleteNode(const string& aData);
		int getSize() const;
		bool isEmpty() const;
		
	private:
		NodePtr mHead;	// users don't have access to the
				// head ptr
		int mSize;

	};
}
#endif
